home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 2
/
Nebula Two.iso
/
SourceCode
/
MiscKit1.7.1
/
MiscKit
/
Source
/
MiscGISKit
/
MiscWorldCoord.m
< prev
next >
Wrap
Text File
|
1995-07-20
|
3KB
|
105 lines
/*=========================== MiscWorldCoord.m ==============================*/
/* MiscWorldCoord class contains and supports values representing locations
in a World coordinate system. Angles are stored internally as radians
at all times, but may be stored or retrieved as degrees.
It uses the instance of MiscPlanetCoordConverter for converting to other
coordinate systems.
DMA Release 0.8, Copyright @1993 by Genesis Project, Ltd. All Rights
Reserved. For further information on terms and conditions see:
Documentation/GISKit/Agreements-Legal-README
HISTORY
25-Feb-93 Dale Amon at GPL
Created.
*/
#import <misckit/miscgiskit.h>
@implementation MiscWorldCoord
/*===========================================================================*/
/* Initialization methods */
/*===========================================================================*/
/* DESIGNATED INITIALIZER */
-initDescription: (char *) txt constants: anObject
{
[super initDescription: txt
converter: [MiscPlanetCoordConverter new]
constants: anObject];
return self;
}
/*---------------------------------------------------------------------------*/
/* Block the designated initializer of our parent class */
-initDescription: (char *) txt
converter: (id <MiscCoordConverterServer>) aConverter
constants: anObject
{ [self error:" %s class should not be sent '%s' messages\n",
[[self class] name], sel_getName(_cmd)];
return self;
}
/*===========================================================================*/
/* Coordinate handling methods */
/*===========================================================================*/
/* set World Coord value from radians */
-setCoordLatitudeRadians: (double) lat
longitudeRadians: (double) lon
altitude: (double) alt
{ [self setCoord: lat : lon : alt];
return self;
}
/*---------------------------------------------------------------------------*/
/* set World Coord value from degrees */
-setCoordLatitudeDegrees: (double) lat
longitudeDegrees: (double) lon
altitude: (double) alt
{ [self setCoord: [MiscCoord degreesToRadians: lat]
: [MiscCoord degreesToRadians: lon]
: alt];
return self;
}
/*---------------------------------------------------------------------------*/
//* Get World Coord value in radians */
-coordLatitudeRadians: (double *) lat
longitudeRadians: (double *) lon
altitude: (double *) alt
{ [self coord: lat : lon : alt];
return self;
}
/*---------------------------------------------------------------------------*/
/* Get World Coord value in degrees */
-coordLatitudeDegrees: (double *) lat
longitudeDegrees: (double *) lon
altitude: (double *) alt
{ [self coord: lat : lon : alt];
*lat = [MiscCoord degreesToRadians: *lat];
*lon = [MiscCoord degreesToRadians: *lon];
return self;
}
/*---------------------------------------------------------------------------*/
/* World coordinates are: latitude, longitude and altitude */
-(double) latitudeRadians {return [self coord1];}
-(double) latitudeDegrees {return [MiscCoord radiansToDegrees: [self coord1]];}
-(double) longitudeRadians {return [self coord2];}
-(double) longitudeDegrees {return [MiscCoord radiansToDegrees: [self coord2]];}
-(double) altitude {return [self coord3];}
@end